\section{Bausteinsicht}

\subsection{Verfeinerungsebene 1}

Wie in Abbildung \ref{fig:grobe_bausteinsicht} zu sehen ist, wurde das \system{} in drei grobe Teile basierend auf dem Model-View-Controller-Pattern unterteilt. Zusätzlich existiert noch ein Teil, der die Datenbankanbindung repräsentiert.
\begin{figure}[h]
	\centering
	\includegraphics[width=1.0\textwidth]{Diagramme/Komponentendiagramm_ConferenceRegistrationSystem.png}
	\caption{Grobe Bausteinsicht des \system{}}
	\label{fig:grobe_bausteinsicht}
\end{figure} \todo{diagramm updaten!}


\subsubsection{\system{} User Interface}
Das User Interface schafft die Schnittstelle zu den einzelnen Usern. Es enthält dabei Interfaces, um
\begin{itemize}
	\item sich als User registrieren sowie einloggen zu können,
	\item als Veranstalter eine Konferenz zu planen,
	\item als Veranstalter Rechte an andere User zu vergeben,
	\item als Veranstalter Paper verschiedenen Gutachtern zum Review zuzuordnen,
	\item als Teilnehmer sich für eine vorhandene Konferenz zu registrieren,
	\item als Autor/Redner ein Paper einzureichen,
	\item als Gutachter ein Paper zu begutachten.
\end{itemize}


\subsubsection{Controller}
Die Controller-Logik enthält sämtliche programmatischen Abläufe. Sie ist dabei aufgeteilt in stateless Beans, die synonym zu herkömmlichen Funktionsaufrufen verwendet werden können, sowie teilweise auf die verschiedenen Servlets der View-Komponente, die so die Ein- und Ausgaben verarbeiten. Daraus folgt, bei der aktuellen Architektur, dass die gesamte Controller-Komponente auf zwei physische Archive aufgeteilt ist (WAR-File und EAR-File).


\subsection{Geschäftsobjekte}
Die Geschäftsobjekte sind das Model des MVC-Patterns, in diesem Projekt sind sie \emph{Entities} genannt. Zu den Entities gehören User, Paper sowie Konferenzen. Sämtliche Entities enthalten keinerlei Logik, sondern bestehen lediglich aus Daten und deren Getter- und Setter-Methoden. Aufgrund von JPA 2.0 sind Datenbankabfrage-Queries physisch in denselben Dateien untergebracht.


%\subsection{Verfeinerungsebene 2} Noch nicht vorhanden.\todo{update, neu schreiben}


%\subsection{Verfeinerungsebene 3}





